package com.cn.wanxi.util;

import java.lang.reflect.Field;
import java.lang.reflect.Method;

public class MyHelp {
//    public MyHelp(String aa) {
//
//    }

    public static void main(String[] args) {
//        new MyHelp();
//        try {
//            Class ca=Class.forName("com.cn.wanxi.util.MyHelp");
//            Object o =ca.newInstance();
//            Field[] fields=ca.getFields();
//
//        } catch (ClassNotFoundException e) {
//            e.printStackTrace();
//        } catch (IllegalAccessException e) {
//            e.printStackTrace();
//        } catch (InstantiationException e) {
//            e.printStackTrace();
//        }

    }
    /**
     * 2021-4-23
     * CREATE SCHEMA `canyin` DEFAULT CHARACTER SET utf8mb4 ;
     * --  Java  c++ c 。net
     * --  js php vb
     * -- fads
     * #fad
     * create database `user`;
     * use user;
     * --  数据库的命名规则
     * -- 表关系  一对一  一对多 多对一 多对多 冗余数据
     * -- user
     * -- id,name    roleid
     * -- 1,aa		1
     * -- 2,bb		2
     * -- 3,cc
     * -- 4  aa       3
     * -- role
     * -- id  name
     * -- 1    vip1
     * -- 2     vip2
     * -- 3     vip3
     * -- user_role_relation
     * --   user_id   role_id
     * --     1         1
     * --     1          2
     *
     * userCREATE TABLE `canyin`.`user` (
     *   `id` INT NOT NULL,
     *   `name` VARCHAR(45) NULL DEFAULT '' COMMENT 'VARCHAR(45)   1\nchar   (45)  ',
     *   `phone` VARCHAR(45) NULL DEFAULT '',
     *   `sex` VARCHAR(45) NULL DEFAULT '',
     *   `age` TINYINT NULL DEFAULT 1,
     *   `birthday` DATETIME(6) NULL DEFAULT '1970-1-1',
     *   `create_time` TIMESTAMP(4) NULL,
     *   `update_time` DATETIME NULL,
     *   `enable` TINYINT NULL,
     *   `remark` VARCHAR(45) NULL,
     *   PRIMARY KEY (`id`))
     * COMMENT = '用户表';
     * TRUNCATE `canyin`.`user`;
     * DROP TABLE `canyin`.`user`;
     *  delete from user where id=1;
     * select sysdate()
     *
     * ALTER TABLE `canyin`.`user`
     * CHANGE COLUMN `create_time` `create_time` DATETIME NULL DEFAULT NULL ;
     *
     *
     * 概念模型   概要需求文档
     * 物理模型  数据库文档
     * 面向对象模型  开发文档
     * 业务模型  详细需求文档
     * 用例图
     * 逻辑图
     * 时序图
     * 类图
     *
     * INSERT INTO `user` (`name`, `phone`, `sex`, `age`, `enable`, `remark`)
     *  VALUES ('1', '1', '11', '1', '1', '1');
     *
     * UPDATE `user` SET
     * `name` = '2',
     *  `phone` = '2',
     *  `sex` = '2',
     *  `age` = '2',
     *  `create_time` = '1970-01-01 00:00:00.000000',
     *  `update_time` = '1970-01-01 00:00:00.000000',
     *  `enable` = '2',
     *  `remark` = '2'
     *  WHERE (`id` = '1');
     *
     *
     * 10:59:03	CREATE TABLE `canyin`.`user` (
     *  `id` INT NOT NULL,   `name` VARCHAR(45) NULL DEFAULT '' COMMENT 'VARCHAR(45)   1\nchar   (45)  ',
     *  `phone` VARCHAR(45) NULL DEFAULT '',   `sex` VARCHAR(45) NULL DEFAULT '',   `age` TINYINT NULL DEFAULT 1,
     *  `birthday` DATETIME(6) NULL DEFAULT '1970-1-1',   `create_time` TIMESTAMP(4) NULL,   `update_time` DATETIME NULL,
     *  `enable` TINYINT(1) NULL,   `remark` VARCHAR(45) NULL,   PRIMARY KEY (`id`)) COMMENT = '用户表'
     *  0 row(s) affected, 1 warning(s): 1681 Integer display width is deprecated and will be removed in a future release.	0.062 sec
     */
    /**
     * 2021-4-26
     * 1.下载xadmin 注意：不要直接改变源代码
     * 2.login.html
     *      修改路径--绝对路径和相对路径
     *      验证码  样式
     *      验证码后台--思路
     *      js--数据类型   定义？
     *      弹出框   打印控制台
     *      事件  键盘事件鼠标事件
     *      正则表达式
     *      熟悉常用的正则表达式的读
     */
    /**
     * 2021-4-27
     * 1.自定义验证  正则表达式 xadmin
     * 2.ajax传递数据
     * 3.用例图  逻辑图  类图
     * 4.后台代码逻辑编写
     *     servlet   五步骤  对应的页面的操作
     *     service    逻辑关系
     *     dao       数据封装
     *     jdbc     链接数据库  六步
     *
     */
    /**
     * 2021-4-28
     * 后台代码编写
     * dao层数据层的编写
     * 1.每一个表都有增删查改的操作，所以我们需要编写每一个表的基础方法
     *  BaseDao
     *  2.每一个表的dao实现BserDao，然后如果当前表有其他的方法，则直接写在自己的dao层
     *  3.对数据实现层 去实现方法
     *      增加
     *      修改
     *      删除
     *      根据id查询
     *      查询所有
     *  4.封装公共的设置数据方法
     *  难点：sql语句的编写
     *  service层的代码编写
     *
     */
    /**
     * 2021-5-6
     * 跳转页面  赋值
     * 查询数据
     * postman 接口测试工具
     * 查询数据赋值   字符串拼接
     * valueToNull   三元运算符
     * 提取myAjax
     * 占位符   编译工具   preparedStatement
     *
     */
    /**
     * 2021-5-7
     * 前端页面数据的赋值
     * 注意：查询后台数据和页面加载时间的不同会导致数据不能正常赋值
     * 面向对象编程
     * 更新enable  的几种状态
     * 删除数据
     * 逻辑问题
     */
    /**
     * 2021-5-8
     * 动态赋值
     * 1.复制table    <table id="productList" lay-filter="test"></table>
     * 2.复制js
     *  elem: '#productList'
     *         , height: 312
     *         , url: '/back/product/findAll' //数据接口，默认返回了一个page=2&limit=10;
     *         , page: true //开启分页
     *         , parseData: function (data) { //res 即为原始返回的数据
     *             return {
     *                 "code": 0, //解析接口状态
     *                 "msg": "", //解析提示文本
     *                 "count": data.total, //解析数据长度,主要的目的就是为了分页
     *                 "data": data.list //解析数据列表
     *             };
     *         }
     * 3.设置表数据  , cols: [[ //表头
     * 4.修改#productList'
     * 5.注意："code": 0, //解析接口状态
     * 6.编写后台代码：注意分页的SQL语句
     * select * from product limit (curPage-1)*pageSize,pageSize;
     *
     *
     *
     * -----------------------------------
     * 工具栏：编辑和删除
     * 1.<script type="text/html" id="barDemo">
     *     <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">编辑</a>
     *     <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="delete">删除</a>
     * </script>
     * 2.修改js
     * table.on('tool(test)', function (obj) {
     * 3.let result = myAjax("/back/product/delete", {id: data.id}, "post");
     * 4.编写后台代码
     * -------------------------------------------
     * 手动分页样式
     * 1.找到layui里面的分页代码
     *  <div id="demo7"></div>
     * 2.复制js
     * //完整功能
     *         laypage.render({
     *             elem: 'demo7'
     *             , count: getCount()
     *             , layout: ['count', 'prev', 'page', 'next', 'limit', 'refresh', 'skip']
     *             , jump: function (obj) {
     *                 let data = {page: obj.curr, limit: obj.limit};
     *                 // console.log(obj)
     *                 findAll(data);
     *             }
     *         });
     * 3.增加得到总条数的代码getCount()
     * 4.传递分页参数
     * let data = {page: obj.curr, limit: obj.limit};
     * findAll(data);
     *
     */
    /**
     * 2021-5-10
     * 模糊查询
     * mysql语句的拼接
     * 判断是否为空或者为null
     * 为了避免使用null，前端需要将所有需要传递的参数设置为空
     * 对象之间的拼接
     * 按钮监听事件
     */
    /**
     * 2021-5-11
     * 模糊查询
     * 得到表单数据
     * 通过form表单？checkbox radio  select
     * 后台sql语句   find_in_set  min  max
     * 对于新增用户   要设置表单样式（页面）
     * 点击提交得到数据 ？
     * 处理逻辑关系---后台需要查询是否有当前用户名---js判断
     */
    /**
     * 2021-5-13
     * 刪除文件
     * 1.下载jar包
     * 2.前端页面  复制layui的代码
     *      1.html
     *      2.js
     *      3.layui.use(['upload'
     * 3.分析upload的js代码
     *   elem: '#productImgHref'
     *   , url: '/upload'
     *   done: function (res) {
     *                 console.log(res);
     *                 目的：点击增加按钮，需要得到后台保存图片的传递的路径
     *                 sessionStorage.setItem("productImgHref", res.data);
     * 4.后台代码
     *      需要将req传递过来的数据强制转换为文件
     * 5.提取公共代碼
     */
    /**
     * 2021-5-14
     * 富文本编辑器
     * 1.编辑
     *   根据id查询  页面加载时需要查询
     *   菜系的赋值  下拉菜单
     *   其他表单赋值
     *   form.render();
     * 2.富文本
     *      需要设置图片
     *      <textarea id="content" name="content" style="display: none;width: 400px"></textarea>
     *      js代码
     *       let layedit = layui.layedit;
     *         layedit.set({
     *             uploadImage: {
     *                 url: '/uploadEdit' //接口url
     *                 , type: 'post' //默认post
     *             }
     *         });
     * 3.调用后台文件上传的代码  返回格式固定样式
     *        JSONObject jsonObject = new JSONObject();
     *         jsonObject.put("code", 0);
     *         jsonObject.put("msg", "");
     *         jsonObject.put("data", new EditorModel((String) req.getAttribute("url")));
     *         resp.getWriter().println(jsonObject);
     * 4.注意：需要将图片保存到out文件目录，否则不能在富文本回显成功
     * 5.富文本赋值和取值
     * $("#content").val(data.content);
     * layedit.getContent(editResult);
     * editResult 是 let editResult = layedit.build('content');的返回值
     *
     *
     */
    /**
     * 2021-5-17
     * session認證
     * 1.前端页面
     *    需要判断每个需要登录的页面
     *    如果说没有登录则，需要判断否则返回登录页面
     * 2.后台接口
     *    如果用户直接通接口进行访问，则需要判断是否已经登录
     *    1.需要在登录成功后加一个登录的标识
     *    2.判断标识是否存在，如果存在则放行，否则返回未登录
     */
}
